The present invention relates to the control of RAID storage, and particularly to the transformation of RAID storage in a virtualized storage environment.
In a storage system where data is stored on one or more RAID arrays, parameters such as the number of disks in the RAID arrays, the size of the disks in the RAID arrays, and the RAID level used are usually fixed at array creation time. Once an array has been created and data has been stored on it, it is usually not possible to change any of these parameters without deleting the RAID array, destroying all the data, and re-creating the array with the new parameters.
Some storage systems allow limited expansion of RAID arrays, e.g., from a RAID-5 array with five disks to a RAID-5 array with eight disks. However, this is done by putting the new storage capacity contiguously on the three new disks and recalculating the parity that already exists on the original five disks. This has the disadvantage that the new data is not striped across the array, and the new disks do not contribute to the parity overhead, which means the performance will be lower than that of a freshly created RAID-5 array with eight disks. Some storage systems allow expansion from RAID-5 to RAID-6 with the addition of a single disk, but that is the only transformation allowed.
One example of a limited facility for expanding a RAID array by adding one or more new disks is disclosed in published PCT Patent Application WO 2004/036424, to Zimmerman, et al., which describes the transformation of a RAID array to take advantage of the additional disk resource by means of a mechanism that scatters a subset of the existing data across the new disk space and subsequently inserts data in the remaining new disk space. Disadvantageously, with the mechanism thus disclosed, the layout of data is substantially changed in the post-transformation array.
It is thus desirable to address these shortcomings of known RAID storage systems.